package model;

import java.util.LinkedList;

public class Vertice {

    private int rotulo; // Número referente às cores do Tile.
    private int id; // Número referente à posição do Tile.
    private int posx;
    private int posy;
    private LinkedList<Aresta> arestas;
    private boolean block;

    public Vertice(int rotulo, int id) {
        this.rotulo = rotulo;
        this.id = id;
        this.posx = id % Mapa.getWIDTH();
        this.posy = id / Mapa.getWIDTH();
        this.arestas = new LinkedList<>();
        if (rotulo == 8) {
            this.block = true;
        } else {
            this.block = false;
        }
    }

    public Vertice(int id) {
        this.posx = id % Mapa.getWIDTH();
        this.posy = id / Mapa.getWIDTH();
    }

    
    
    public int getRotulo() {
        return rotulo;
    }

    public void setRotulo(int rotulo) {
        this.rotulo = rotulo;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getPosx() {
        return posx;
    }

    public void setPosx(int posx) {
        this.posx = posx;
    }

    public int getPosy() {
        return posy;
    }

    public void setPosy(int posy) {
        this.posy = posy;
    }

    public LinkedList<Aresta> getArestas() {
        return arestas;
    }

    public void setArestas(LinkedList<Aresta> arestas) {
        this.arestas = arestas;
    }

    public boolean isBlock() {
        return block;
    }

    public void setBlock(boolean block) {
        this.block = block;
    }

    public int distanciaManhattan(Vertice v) {
        return (Math.abs(this.getPosx() - v.getPosx()) + Math.abs(this.getPosy() - v.getPosy()));
    }
}
